//Old stuff that is still in use!
ACTOR ErasusPuff : BulletPuff
{
  +PUFFONACTORS
  Renderstyle Add
  Alpha 0.75
  Scale 1.1
  states
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("ErasusSmokeSpawner",0.2*random(6,-6),0.3*random(14,-14),0.3*random(14,-14),0,0,0,0,128,0)
    TNT1 A 0 A_SpawnItemEx("ErasusExp",0.2*random(6,-6),0.3*random(14,-14),0.3*random(14,-14),0,0,0,0,128,0)
    TNT1 BC 3
    TNT1 D 2
    Stop
  }
}

ACTOR ErasusExp
{
  +NOINTERACTION
  +NOGRAVITY
  +CLIENTSIDEONLY
  Renderstyle Add
  Alpha 0.75
  Scale 1.1
  states
  {
  Spawn:
    TNT1 A 1
    TNT1 A 0 A_Jump(255,"Exp1","Exp2","Exp3","Exp4","Exp5")
    stop
  Exp1:
    EXP6 ABCDEFGH 1 Bright A_SetScale(ScaleX -0.01, ScaleY -0.01)
    Goto Death
  Exp2:
    EXP7 ABCDEFGH 1 Bright A_SetScale(ScaleX -0.01, ScaleY -0.01)
    Goto Death
  Exp3:
    EXP8 ABCDEFGH 1 Bright A_SetScale(ScaleX -0.01, ScaleY -0.01)
    Goto Death
  Exp4:
    EXP9 ABCDEFGH 1 Bright A_SetScale(ScaleX -0.01, ScaleY -0.01)
    Goto Death
  Exp5:
    EXP0 ABCDEFGH 1 Bright A_SetScale(ScaleX -0.01, ScaleY -0.01)
    Goto Death
  Death:
    TNT1 A 1
    stop
  }
}

ACTOR QuadPuff : ErasusPuff
{
  states
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("QuadSmokeSpawner",0.2*random(6,-6),0.3*random(14,-14),0.3*random(14,-14),0,0,0,0,128,0)
    TNT1 A 0 A_SpawnItemEx("ErasusExp",0.2*random(6,-6),0.3*random(14,-14),0.3*random(14,-14),0,0,0,0,128,0)
    TNT1 BC 3
    TNT1 D 2
    Stop
  }
}

ACTOR ErasusSmokeSpawner
{
 +NOINTERACTION
 +NOGRAVITY
 +CLIENTSIDEONLY
 states
 {
 Spawn:
 TNT1 AAA 4 A_SpawnItemEx("ErasusSmoke",0,0,0,0.01*random(10,15),0.01*random(10,15),0.01*random(10,15),random(0,359),128,0)
 Stop
 }
}

ACTOR ErasusSmoke
{
 +NOINTERACTION
 +NOGRAVITY
 +CLIENTSIDEONLY
 Renderstyle Normal
 Scale 0.35
 Alpha 0.28
 states
 {
 Spawn:
 TNT1 A 0
 TNT1 A 0 A_FadeOut(0.025)
 TNT1 A 1 A_Jump(255,"SmokeA","SmokeB","SmokeC","SmokeD","SmokeE","SmokeF","SmokeG","SmokeH")
 SmokeA:
 SMKE A 0 A_Jump(164,2)
 SMKE A 0 A_SetScale(ScaleX -0.0075, ScaleY -0.0075)
 SMKE A 0 A_Jump(164,2)
 SMKE A 0 A_FadeOut(0.025)
 SMKE A 2
 Loop
 SmokeB:
 SMKE A 0 A_Jump(164,2)
 SMKE A 0 A_SetScale(ScaleX -0.0075, ScaleY -0.0075)
 SMKE A 0 A_Jump(164,2)
 SMKE A 0 A_FadeOut(0.025)
 SMKE B 2
 Loop
 SmokeC:
 SMKE A 0 A_Jump(164,2)
 SMKE A 0 A_SetScale(ScaleX -0.0075, ScaleY -0.0075)
 SMKE A 0 A_Jump(164,2)
 SMKE A 0 A_FadeOut(0.025)
 SMKE C 2
 Loop
 SmokeD:
 SMKE A 0 A_Jump(164,2)
 SMKE A 0 A_SetScale(ScaleX -0.0075, ScaleY -0.0075)
 SMKE A 0 A_Jump(164,2)
 SMKE A 0 A_FadeOut(0.025)
 SMKE D 2
 Loop
 SmokeE:
 SMKE A 0 A_Jump(164,2)
 SMKE A 0 A_SetScale(ScaleX -0.0075, ScaleY -0.0075)
 SMKE A 0 A_Jump(164,2)
 SMKE A 0 A_FadeOut(0.025)
 SMKE E 2
 Loop
 SmokeF:
 SMKE A 0 A_Jump(164,2)
 SMKE A 0 A_SetScale(ScaleX -0.0075, ScaleY -0.0075)
 SMKE A 0 A_Jump(164,2)
 SMKE A 0 A_FadeOut(0.025)
 SMKE F 2
 Loop
 SmokeG:
 SMKE A 0 A_SetScale(ScaleX -0.0075, ScaleY -0.0075)
 SMKE G 2 A_FadeOut(0.025)
 Loop
 SmokeH:
 SMKE A 0 A_Jump(164,2)
 SMKE A 0 A_SetScale(ScaleX -0.0075, ScaleY -0.0075)
 SMKE A 0 A_Jump(164,2)
 SMKE A 0 A_FadeOut(0.025)
 SMKE H 2
 Loop
 }
}

ACTOR QuadSmokeSpawner
{
 +NOINTERACTION
 +NOGRAVITY
 +CLIENTSIDEONLY
 states
 {
 Spawn:
 TNT1 AAAA 3 A_SpawnItemEx("QuadSmoke",0,0,0,0.01*random(10,15),0.01*random(10,15),0.01*random(10,15),random(0,359),128,0)
 Stop
 }
}

ACTOR QuadSmoke : ErasusSmoke
{
 states
 {
 Spawn:
 TNT1 A 0
 TNT1 A 0 A_FadeOut(0.025)
 TNT1 A 1 A_Jump(255,"SmokeA","SmokeB","SmokeC","SmokeD","SmokeE","SmokeF","SmokeG","SmokeH")
 SmokeA:
 ISMK A 0 A_Jump(164,2)
 ISMK A 0 A_SetScale(ScaleX -0.0075, ScaleY -0.0075)
 ISMK A 0 A_Jump(164,2)
 ISMK A 0 A_FadeOut(0.025)
 ISMK A 2
 Loop
 SmokeB:
 ISMK A 0 A_Jump(164,2)
 ISMK A 0 A_SetScale(ScaleX -0.0075, ScaleY -0.0075)
 ISMK A 0 A_Jump(164,2)
 ISMK A 0 A_FadeOut(0.025)
 ISMK B 2
 Loop
 SmokeC:
 ISMK A 0 A_Jump(164,2)
 ISMK A 0 A_SetScale(ScaleX -0.0075, ScaleY -0.0075)
 ISMK A 0 A_Jump(164,2)
 ISMK A 0 A_FadeOut(0.025)
 ISMK C 2
 Loop
 SmokeD:
 ISMK A 0 A_Jump(164,2)
 ISMK A 0 A_SetScale(ScaleX -0.0075, ScaleY -0.0075)
 ISMK A 0 A_Jump(164,2)
 ISMK A 0 A_FadeOut(0.025)
 ISMK D 2
 Loop
 SmokeE:
 ISMK A 0 A_Jump(164,2)
 ISMK A 0 A_SetScale(ScaleX -0.0075, ScaleY -0.0075)
 ISMK A 0 A_Jump(164,2)
 ISMK A 0 A_FadeOut(0.025)
 ISMK E 2
 Loop
 SmokeF:
 ISMK A 0 A_Jump(164,2)
 ISMK A 0 A_SetScale(ScaleX -0.0075, ScaleY -0.0075)
 ISMK A 0 A_Jump(164,2)
 ISMK A 0 A_FadeOut(0.025)
 ISMK F 2
 Loop
 SmokeG:
 ISMK A 0 A_SetScale(ScaleX -0.0075, ScaleY -0.0075)
 ISMK G 2 A_FadeOut(0.025)
 Loop
 SmokeH:
 ISMK A 0 A_Jump(164,2)
 ISMK A 0 A_SetScale(ScaleX -0.0075, ScaleY -0.0075)
 ISMK A 0 A_Jump(164,2)
 ISMK A 0 A_FadeOut(0.025)
 ISMK H 2
 Loop
 }
}

//Alt-Fire

ACTOR ShellProjectile
{
   Obituary "%o was humiliated by %k's HE shell casing galore."
   Radius 6
   Height 10
   Speed 30
   Damage 10
   Scale 0.6
   BounceSound "Weapons/ErasusBounce"
   PROJECTILE
   +THRUGHOST
   -NOGRAVITY
   +BOUNCEONACTORS
   +BOUNCEONCEILINGS
   Gravity 0.75
   BounceType Doom
   BounceCount 7
   BounceFactor 0.7
   DamageType Nope
   States
   {
   Spawn:
      SHLP A 0
      SHLP A 0 A_ChangeVelocity (frandom(-8, 8), frandom(-8, 8), frandom(-8, 8), 0)
      SHLP A 0 ThrustThingZ(0, 20, 0, 1)
      SHLP ABCDEFGH 1
      Goto Roflcopter
   Roflcopter:
      SHLP A 0 A_Jump(128,1,3,5,7)
      SHLP ABCDEFGH 1 //A_ChangeVelocity (frandom(-1.6, 1.6), frandom(-1.6, 1.6), frandom(-0.9, 0.9), 0) now in O.G.U.R.
      Loop
   Death:
      TNT1 A 0 A_SpawnItemEx("ErasusCasing")
      stop
   }
}

ACTOR QuadShellProjectile : ShellProjectile
{
   Damage 20
   States
   {
   Spawn:
      QHLP A 0
      QHLP A 0 A_ChangeVelocity (frandom(-8, 8), frandom(-8, 8), frandom(-8, 8), 0)
      QHLP A 0 ThrustThingZ(0, 20, 0, 1)
      QHLP ABCDEFGH 1
      Goto Roflcopter
   Roflcopter:
      QHLP A 0 A_Jump(128,1,3,5,7)
      QHLP ABCDEFGH 1 //A_ChangeVelocity (frandom(-1.6, 1.6), frandom(-1.6, 1.6), frandom(-0.9, 0.9), 0) now in O.G.U.R.
      Loop
   Death:
      TNT1 A 0 A_SpawnItemEx("ErasusCasing",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
      stop
   }
}